#pragma once
#ifndef SMPPCANCELBROADCASTSM_HPP
#define SMPPCANCELBROADCASTSM_HPP

#include "SMPPHeader.hpp"
#include "SMPPCancelBroadcastOptionalTLVs.hpp"

namespace smpp {
namespace pdu{

class SMPP_DLLPRFX CancelBroadcastSM : public Header,
public CancelBroadcastOptionalTLVs{
	CoctetString _ServiceType;
	CoctetString _MessageId;
	quint8 _SourceAddrTON;
	quint8 _SourceAddrNPI;
	CoctetString _SourceAddr;
public:
	CancelBroadcastSM(const Header &nHeader = Header(),
		const CoctetString &nServiceType = "",
		const CoctetString &nMessageId = "",
		const quint8 nSourceAddrTON = 0,
		const quint8 nSourceAddrNPI = 0,
		const CoctetString &nSourceAddr = "",
		const CancelBroadcastOptionalTLVs &
		nCancelBroadcastOptionalTLVs = CancelBroadcastOptionalTLVs());

	CancelBroadcastSM(const CancelBroadcastSM &);

	void setServiceType(const CoctetString &);

	const CoctetString &getServiceType() const;

	void setMessageId(const CoctetString &);

	const CoctetString &getMessageId() const;

	void setSourceAddrTON(const quint8);

	const quint8 getSourceAddrTON() const;

	void setSourceAddrNPI(const quint8);

	const quint8 getSourceAddrNPI() const;

	void setSourceAddr(const CoctetString &);

	const CoctetString &getSourceAddr() const;

	void calcCommandLength();
};

}
}

#endif
